Many compute sites support a combination of enterprise and High Performance Computing (HPC) applications. HPC workloads tend to be comprised of a plurality of interdependent parallel processes that must run synchronously in time due to the large amount of inter-process communication. Typical HPC workloads execute on clusters of compute nodes interconnected by a low-latency network. Enterprise workloads, on the other hand, tend to be independent tasks that do not require a significant amount of inter-process communication.
Unfortunately, the compute infrastructure historically employed for an enterprise site does not closely resemble the compute infrastructure historically employed for HPC sites. Therefore, distinct compute sites have typically been employed for each workload type. It is anticipated, however, that HPC and enterprise computing systems will converge. For typical compute systems, there is significant pressure to support a variety of services using a shared converged infrastructure.
In order for HPC applications to be successfully deployed in an enterprise compute infrastructure, however, a need exists for improved techniques for inter-process communication among the plurality of interdependent parallel processes. A further need exists for inter-process communication among the plurality of interdependent parallel processes using a shared memory in an enterprise environment.